package org.hawk.gwt.ppc.parser;

import java.util.List;

/**
 * Common interface for members that have parameters.
 * These are constructors and methods.
 * 
 * @author alex.bereznevatiy@gmail.com
 *
 */
public interface ParameterizedMemberDescriptor extends 
		Descriptor, ModificatedDescriptor, AnnotatedDescriptor {
	
	/**
	 * @return unmodifiable list of parameters that should be passed to this member.
	 */
	List<VariableDescriptor> getParameters();
	
	/**
	 * @return <code>true</code> if this member declares variable arguments length parameter.
	 */
	boolean isVarArgs();
	
	/**
	 * @return list of exceptions declared in the throws section of this member.
	 */
	List<String> getExceptionTypes();
	
	/**
	 * @return String representing type parameters of this method.
	 * If type parameters are absent - returns empty string.
	 */
	String getTypeParameters();
}
